//package com.tengju.bff.interfaces.manage.crm.activity.facade.assembler;
//
//import com.tengju.bff.interfaces.manage.crm.activity.form.*;
//import com.tengju.data.domain.model.activity.ActivityAnalysisQuery;
//import com.tengju.data.domain.model.activity.ActivityDetail;
//import com.tengju.data.domain.model.activity.ActivityViewReachQuery;
//import com.tengju.data.domain.model.activity.RoleTargetStarType;
//import com.tengju.user.domain.model.user.SsoUserId;
//import com.tengju.user.domain.model.user.UserIdCode;
//import com.tengju.user.domain.shared.IdObject;
//import org.springframework.util.CollectionUtils;
//
//import java.util.List;
//import java.util.stream.Collectors;
//
///**
// * @author chenhang
// * @Date 2021/10/14
// */
//public class QueryAssembler {
//
//    public static ActivityAnalysisQuery assemblerToQuery(ActivityQueryDTO queryDTO, List<UserIdCode> genSecIdCodes, ActivityDetail activityDetail) {
//        if (queryDTO == null) {
//            return null;
//        }
//        ActivityAnalysisQuery query = new ActivityAnalysisQuery();
//        query.setActivityId(queryDTO.getActivityId());
//        query.setTargetType(queryDTO.getTargetType());
//        query.setSubjectType(queryDTO.getSubjectType());
//        query.setDataType(queryDTO.getDataType().name());
//        switch (queryDTO.getDataType()) {
//            case DAY:
//                query.dayView();
//                query.setActivityDate(queryDTO.getActivityDate());
//                break;
//            case ALL:
//            default:
//                query.allView();
//        }
//        if (activityDetail != null) {
//            query.setActivityStartDate(activityDetail.getStartTime());
//            query.setActivityEndDate(activityDetail.getEndTime());
//        }
//        if (!CollectionUtils.isEmpty(genSecIdCodes)) {
//            query.setGenSecIdCodes(genSecIdCodes.stream().map(UserIdCode::getValue).collect(Collectors.toList()));
//        }
//        query.setOrderColumn(queryDTO.getOrderColumn());
//        query.setOrderType(queryDTO.getOrderType());
//        return query;
//    }
//
//    public static ActivityViewReachQuery assemblerToQuery(ActivityTargetReachQueryDTO queryDTO, List<UserIdCode> genSecIdCodes, ActivityDetail activityDetail,List<SsoUserId> saleDepartmentUserIds){
//        if (queryDTO == null) {
//            return null;
//        }
//        ActivityViewReachQuery query = new ActivityViewReachQuery();
//        query.setPageSize(queryDTO.getPageSize());
//        query.setOffset(queryDTO.getOffset());
//        query.setIdCode(queryDTO.getIdCode());
//        query.setTargetType(queryDTO.getTargetType());
//        query.setDimId(queryDTO.getDimId());
//        query.setSubjectType(queryDTO.getSubjectType());
//        query.setBelongSecId(queryDTO.getBelongGenSecId());
//        query.setActivityId(queryDTO.getActivityId());
//        if (activityDetail != null) {
//            query.setActivityStartDate(activityDetail.getStartTime());
//            query.setActivityEndDate(activityDetail.getEndTime());
//        }
//        switch (queryDTO.getDataType()) {
//            case DAY:
//                query.dayView();
//                query.setActivityDate(queryDTO.getActivityDate());
//                break;
//            case ALL:
//            default:
//                query.allView();
//        }
//        query.setDataType(queryDTO.getDataType().name());
//        if (!CollectionUtils.isEmpty(genSecIdCodes)) {
//            query.setGenSecIdCodes(genSecIdCodes.stream().map(UserIdCode::getValue).collect(Collectors.toList()));
//        }
//        query.setOrderColumn(queryDTO.getOrderColumn());
//        query.setOrderType(queryDTO.getOrderType());
//        query.setSsoUserId(saleDepartmentUserIds.stream().map(IdObject::getValue).collect(Collectors.toList()));
//        return query;
//    }
//
//    public static ActivityViewReachQuery assemblerToQuery(SecTargetReachViewDTO queryDTO, List<UserIdCode> genSecIdCodes, ActivityDetail activityDetail, List<SsoUserId> saleDepartmentUserIds){
//        if (queryDTO == null) {
//            return null;
//        }
//        ActivityViewReachQuery query = new ActivityViewReachQuery();
//        query.setActivityId(queryDTO.getActivityId());
//        query.setSubjectType(queryDTO.getSubjectType());
//        query.setDimId(queryDTO.getDimId());
//        query.setActivityDate(queryDTO.getActivityDate());
//        query.setSsoUserId(saleDepartmentUserIds.stream().map(IdObject::getValue).collect(Collectors.toList()));
//        switch (queryDTO.getDataType()) {
//            case DAY:
//                query.dayView();
//                break;
//            case ALL:
//            default:
//                query.allView();
//        }
//        if (activityDetail != null) {
//            query.setActivityStartDate(activityDetail.getStartTime());
//            query.setActivityEndDate(activityDetail.getEndTime());
//        }
//        query.setDataType(queryDTO.getDataType().name());
//        if (!CollectionUtils.isEmpty(genSecIdCodes)) {
//            query.setGenSecIdCodes(genSecIdCodes.stream().map(UserIdCode::getValue).collect(Collectors.toList()));
//        }
//        return query;
//    }
//
//    public static ActivityViewReachQuery assemblerToQuery(ActivityTrendDTO queryDTO, List<UserIdCode> genSecIdCodes, ActivityDetail activityDetail){
//        if (queryDTO == null) {
//            return null;
//        }
//        ActivityViewReachQuery query = new ActivityViewReachQuery();
//        query.setSubjectType(queryDTO.getSubjectType());
//        query.setDimId(queryDTO.getDimId());
//        query.setActivityId(queryDTO.getActivityId());
//        query.setDataType(queryDTO.getDataType().name());
//        query.setActivityDate(queryDTO.getActivityDate());
//        switch (queryDTO.getDataType()) {
//            case DAY:
//                query.dayView();
//                query.setActivityDate(queryDTO.getActivityDate());
//                break;
//            case ALL:
//            default:
//                query.allView();
//        }
//        if (activityDetail != null) {
//            query.setActivityStartDate(activityDetail.getStartTime());
//            query.setActivityEndDate(activityDetail.getEndTime());
//        }
//        if (!CollectionUtils.isEmpty(genSecIdCodes)) {
//            query.setGenSecIdCodes(genSecIdCodes.stream().map(UserIdCode::getValue).collect(Collectors.toList()));
//        }
//        return query;
//    }
//
//    public static ActivityViewReachQuery assemblerToQuery(ActivityStaffTargetReachQueryDTO queryDTO, ActivityDetail activityDetail){
//        if (queryDTO == null) {
//            return null;
//        }
//        ActivityViewReachQuery query = new ActivityViewReachQuery();
//        query.setDimId(queryDTO.getDimId());
//        query.setPageSize(queryDTO.getPageSize());
//        query.setOffset(queryDTO.getOffset());
//        query.setTargetType(queryDTO.getTargetType());
//        query.setSsoUserId(queryDTO.getSsoUserIds());
//        query.setActivityId(queryDTO.getActivityId());
//        query.setSubjectType(queryDTO.getSubjectType());
//        query.setRoleType(RoleTargetStarType.SEC.getVal());
//        switch (queryDTO.getDataType()) {
//            case DAY:
//                query.dayView();
//                break;
//            case ALL:
//            default:
//                query.allView();
//        }
//        if (activityDetail != null) {
//            query.setActivityStartDate(activityDetail.getStartTime());
//            query.setActivityEndDate(activityDetail.getEndTime());
//        }
//        query.setActivityDate(queryDTO.getActivityDate());
//        query.setDataType(queryDTO.getDataType().name());
//        query.setOrderColumn(queryDTO.getOrderColumn());
//        query.setOrderType(queryDTO.getOrderType());
//        return query;
//    }
//
//    public static ActivityViewReachQuery assemblerToQuery(ActivityBaseQuery baseQuery) {
//        if (baseQuery == null) {
//            return null;
//        }
//        ActivityViewReachQuery query = new ActivityViewReachQuery();
//        query.setDataType(baseQuery.getDataType().name());
//        query.setActivityId(baseQuery.getActivityId());
//        switch (baseQuery.getDataType()) {
//            case DAY:
//                query.dayView();
//                query.setActivityDate(baseQuery.getActivityDate());
//                break;
//            case ALL:
//            default:
//                query.allView();
//        }
//        return query;
//    }
//
//}